#ifndef BLOQUEDISCO_H_
#define BLOQUEDISCO_H_

#include <stdio.h>
#include <string.h>
#include "Bloque.h"
#include "../Compuesto.h"
#include "../../exceptions/NullPointerException.h"
#include "../../exceptions/CompuestoException.h"
#include "../../exceptions/DiscStorageException.h"

using namespace std;
class BloqueDisco : public Bloque{
	private:
		FILE *fp;
		int offset;
		void escribo();
	public:
		BloqueDisco(TipoMemoria tipoMemoria, int tamanio, FILE *fp, int id);
		void getAccesoDato(void **accesoDato);
		void addComponente(ComponenteAlmacenamiento *componente);
		void leer(char **datoLeido, TipoSerializacion modo);
		void escribir(void *accesoDato, TipoSerializacion modo);
		void escribir(void *accesoDato, Dato *dato, TipoSerializacion modo);
		void escribir(TipoSerializacion modo);
		void borrar();
		~BloqueDisco();
};

#endif /*BLOQUEDISCO_H_*/
